package com.bosssoft.hr.train.j2se.example.collection;

import com.bosssoft.hr.train.j2se.example.pojo.User;
import lombok.extern.slf4j.Slf4j;
import org.xml.sax.helpers.DefaultHandler;

import java.util.*;

/**
 * @description: 该类主要是为了测试 Hashmap 注意如果多线程访问 请将put，remove加上
 * list**,synchronized 关键字，如多线程做读并发访问不需要加 synchronized
 * @author: Administrator
 * @create: 2020-05-28 20:58
 * @since
 **/
@Slf4j
public class HashMapDemo extends BaseCollectionDemo {

    /**
     * 注意基于接口定义这样右边可以是map的任何实现类
     */
    private Map<Long, User> userHashMap=new HashMap<>();


    /**
     * @Description: 对map中的用户进行遍历，其他几种遍历方式请执行查阅文章
     * @Author: Administrator
     * @DATE: 2022-10-21  16:14
     */
    public void visitByEntrySet() {
        //调用父类的数据构建方法
        User[] users=generateData();
        for(User user: users){
            userHashMap.put(user.getId(),user);
        }
        // 遍历显示 多种方式遍历请查阅
        Set<Map.Entry<Long,User>> setUser=userHashMap.entrySet();
        if(null==setUser){
            throw new RuntimeException("不存在数据");
        }
        for(Map.Entry<Long,User> entry : setUser){
            log.info(Constraint.LOG_TAG+"{}",entry.getKey().toString()+"####"+entry.getValue());
        }
    }


}
